This invention relates to network resource allocation. More specifically, the invention relates to bandwidth allocation on computer networks.
A segmented network is a network that is broken up into groups in order to contain broadcast traffic and improve performance. Segmented network seamlessly provide access to resources located on different nodes in the groups using a shared communications line. A segmented bus network is a topology for a segmented network in which each nodes are connected to a network communications bus. The nodes typically comprise computers coupled to the communications bus enabling data transfer between the computers. On a standard bus network, each node monitors activity on the line. Messages are detected by all nodes but are accepted (or stripped) by the node(s) to which they are addressed. To avoid collisions that occur when two or more nodes try to use the line at the same time, bus networks commonly rely on collision detection or token passing to regulate traffic.
A bus network that uses token passing to regulate traffic is referred to as a token bus network on which a token governing the right to transmit data is passed from one station to another, and each station holds the token for a brief time, during which it alone can transmit information. A topology such as token bus network has the advantage of enforcing fairness on the medium as each segment is given an equal opportunity to transmit data over the bus. However, arbitrating bandwidth in this fashion virtually eliminates the flexibility associated with a segmented network as only one segment can communicating at a given time. A token passing solution also has the undesirable characteristic of failing to make use of the bandwidth advantage of segmented media.
The conventional Ethernet provides an alternative bandwidth arbitration method on a bus network that relies upon a form of access known as carrier sense multiple access with collision detection (CSMA/CD) to regulate traffic. With CSMA/CD, each node on the network monitors the line and transmits when it senses that the line is not busy. If a collision occurs because another node is using the same opportunity to transmit, both nodes stop transmitting. To avoid another collision, both nodes wait for differing amounts of time before attempting to transmit again. This protocol has the advantage of being localized and adaptive to congestion but the protocol responds slowly to changes in traffic and may over correct because of the exponential increase in wait times as congestion increases.
What is needed, then, is a localized arbitration system that offers equal opportunities for data transmission to each node on a segmented network without wasting the available bandwidth. Ideally, the arbitration scheme would also require limited network communication between the nodes to maximize bandwidth availability.
The present invention is a system and method for arbitrating bandwidth on segmented network topologies. The method has nodes on the network maintain a count, referred to as the idle gap count, that indicates the number of nodes downstream in the inserting state. After a node inserts a packet into the data stream, the idle gap count is used to determine how many idles must be passed before the next packet can be inserted by the node. This process is repeated for each inserting node in the network.